package com.example.demo.mapper;

import com.example.demo.entity.City;
import com.example.demo.entity.District;
import com.example.demo.entity.Province;
import com.example.demo.entity.Town;

import java.util.List;

/**
 * 省份Mapper
 *
 * @author 叮当猫的百宝箱
 * @since 1.0
 */
public interface ProvinceMapper {

    /**
     * 通过城市行政编码查询属于省份信息
     *
     * @param cityCode 城市行政编码
     * @return 城市行政编码查询属于省份信息
     */
    Province findByCityCode(String cityCode);

    /**
     * 通过区/县行政编码查询属于省份信息
     *
     * @param districtCode 区/县行政编码
     * @return 区/县行政编码查询属于省份信息
     */
    Province findByDistrictCode(String districtCode);

    /**
     * 通过镇/街道行政编码查询属于省份信息
     *
     * @param townCode 镇/街道行政编码
     * @return 镇/街道行政编码查询属于省份信息
     */
    Province findByTownCode(String townCode);

    /**
     * 查询所有省份
     *
     * @return 所有省份信息列表
     */
    List<Province> findAll();

    /**
     * 根据省份行政编码查询城市信息列表
     *
     * @param code 省份行政编码
     * @return 属于当前省份的的城市信息列表
     */
    List<City> findCityByCode(String code);

    /**
     * 根据省份行政编码查询区/县信息列表
     *
     * @param code 省份行政编码
     * @return 属于当前省份的的区/县信息列表
     */
    List<District> findDistrictByCode(String code);

    /**
     * 根据省份行政编码查询镇/街道信息列表
     *
     * @param code 省份行政编码
     * @return 属于当前省份的的镇/街道信息列表
     */
    List<Town> findTownByCode(String code);
}
